<?php
/**
 * Interface zum Db_Connector
 *
 * @author		Joachim Ruf
 * @copyright	Copyright (c) 2003-2013 Loresoft Software (http://www.loresoft.de)
 * @license		http://yapary.loresoft.de/lizenzbedingungen     New BSD License
 * @notice		startTransaction, rollback und commit wird von MyISAM nicht unterstuetz!!!
 * */


class Yapary_Db_Sql_Transaction
{
    private $connection   = NULL;


    function __construct(MySQLi $_connection) {
        $this->connection = $_connection;
    }


	/**
	* @notice: startTransaction, rollback und commit wird von MyISAM nicht unterstuetz!!!
	* Startet eine Transaktion, welche dann mit commit() abgeschlossen, oder mit rollback() rueckgaengig gemacht werden kann
	* Hierfuer InnoDB oder aehnliches Verwenden
	* @return bool
	*/
    public function start ($_autoCommit = false) {
		if(@$this->connection->autocommit($_autoCommit) === NULL) { // autocommit(false) = Disable autocommit
		    return false;
		}

		return true;
    }


	/**
	* Speichert eine startTransaction definierte und uebertragene Transaktion
	* ACHTUNG: startTransaction, rollback und commit wird von MyISAM nicht unterstuetz!!!
	* Hierfuer InnoDB oder aehnliches Verwenden
	* @return bool
	*/
    public function commit () {
		if(@$this->connection->commit() === NULL) {
		    return false;
		}

		return true;
    }


	/**
	* Macht eine mit startTransaktion defineirte und getaetigte Transaktion wieder rueckgaengig
	* ACHTUNG: startTransaction, rollback und commit wird von MyISAM nicht unterstuetz!!!
	* Hierfuer InnoDB oder aehnliches Verwenden
	* @return bool
	*/
    public function rollback () {
		if(@$this->connection->rollback() === NULL) {
		    return false;
		}

		return true;
    }

}


?>